package com.cmc.cloud.cmclink.doc.api.document;

import com.cmc.cloud.cmclink.doc.api.document.req.cargomanifest.CargoManifestReqDTO;
import com.cmc.cloud.cmclink.doc.api.document.req.cargomanifest.CargoManifestRespDTO;
import com.cmc.cloud.cmclink.doc.api.document.req.cargomanifest.TjBlnoCntrReportVO;
import com.cmc.cloud.cmclink.doc.api.document.req.cargomanifest.TjBlnoCntrReqVO;
import com.cmc.cloud.cmclink.doc.constant.DocApiConstants;
import com.cmes.framework.common.pojo.CommonResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;

/**
 * RPC Cargo Manifest接口
 * 
 * @author dph
 */
@FeignClient(name = DocApiConstants.NAME)
@Tag(name = "RPC 服务 - Cargo Manifest")
public interface CargoManifestApi {
    String PREFIX = DocApiConstants.PREFIX + "/cargoManifest";

    /**
     * Cargo Manifest构造参数查询
     *
     * @param cargoManifestReqDTO DTO
     * @return DTO
     */
    @PostMapping(PREFIX + "/query/filter")
    @Operation(summary = "Cargo Manifest构造参数查询")
    CommonResult<CargoManifestRespDTO>
        queryFilterCargoManifest(@Valid @RequestBody CargoManifestReqDTO cargoManifestReqDTO);
    /**
     * 天津报表箱数据统计
     * @param reqVo reqVo
     * @return TjBlnoCntrReportVO
     */
    @PostMapping(PREFIX + "/query/TjBlnoCntrReport")
    @Operation(summary = "天津报表箱数据统计查询")
    CommonResult<TjBlnoCntrReportVO> getTjBlnoCntr(@Valid @RequestBody TjBlnoCntrReqVO reqVo);

}
